//
//  MainTabBar.swift
//  HMWeibo06
//
//  Created by apple on 15/5/10.
//  Copyright (c) 2015年 heima. All rights reserved.
//

import UIKit

class MainTabBar: UITabBar {

    override func layoutSubviews() {
        super.layoutSubviews()
        
        // 将按钮均分，遍历子视图

        // 按钮的总数
        let btnCount = 5
        let w = self.bounds.size.width / CGFloat(btnCount)
        let h = self.bounds.size.height
        // 每个按钮的大小固定
        let frame = CGRectMake(0, 0, w, h)
        
        // 指定数组中的类型都是 UIView，在 OC 中，所有的控件都继承自 UIView
        var index = 0
        for v in subviews as! [UIView] {
            // 只需要修改 UITabBarButton 的位置
            // 判断 v 的类型，在 OC 中是使用 isKindOfClass
            // UIControl 可以 addTarget，主动的添加监听方法，可以接受用户的点击或者触摸事件
            if v is UIControl && !(v is UIButton) {
                v.frame = CGRectOffset(frame, CGFloat(index) * w, 0)
                
                // 三目
                index += (index == 1) ? 2 : 1
            }
        }
        
        // 指定撰写按钮的位置
        self.composedButton.frame = CGRectOffset(frame, 2 * w, 0)
    }
    
    lazy var composedButton: UIButton = {
        // OC 中使用 [[UIButton alloc] init] 实例化出来的 button 就是 custom 的
        // let btn = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton
        let btn = UIButton()
        
        btn.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: UIControlState.Normal)
        btn.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: UIControlState.Selected)
        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: UIControlState.Normal)
        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: UIControlState.Selected)
        
        // 懒加载的代码是闭包，是提前准备好的代码，在需要的时候执行，闭包中就需要使用 self.
        self.addSubview(btn)
        
        return btn
    }()
}
